#ifndef C3DSFILEIDENTIFICATIONS_H_
#define C3DSFILEIDENTIFICATIONS_H_

#include "../../base/cobject.h"

/**
 * C3DSFileIdentifications - class with ids for chunks of *.3DS file
 * @author Michal Rost
 * @date 23.03.2008
 */
class C3DSFileIdentifications : public CObject {
public:

  // Identification of root
  static const unsigned short int ROOT = 0x4D4D;

  // Identfication of group of objects
  static const unsigned short int ROOT_SUB = 0x3D3D;

  // Identfication of *.3DS file version
  static const unsigned short int VERSION = 0x0002;

  // Identification of model animation data
  static const unsigned short int EDITKEYFRAME = 0xB000;

  // Identification of model material
  static const unsigned short int MATERIAL = 0xAFFF;

  // Identification of model object
  static const unsigned short int MESH = 0x4000;

  // Identification of mesh
  static const unsigned short int MESH_MESH = 0x4100;

  // Identification of vertex
  static const unsigned short int MESH_VERTS = 0x4110;

  // Identification of face
  static const unsigned short int MESH_FACES = 0x4120;

  // Identification of mesh material
  static const unsigned short int MESH_MATERIAL = 0x4130;

  // Ident. UV texturove koordinace
  static const unsigned short int MESH_COORDS = 0x4140;

  // Identification of material name
  static const unsigned short int MATERIAL_NAME = 0xA000;

  // Identification of material ambient reflection RGB
  static const unsigned short int MATERIAL_AMBIENT = 0xA010;

  // Identification of material diffuse reflection RGB
  static const unsigned short int MATERIAL_DIFFUSE = 0xA020;

  // Identification of material specular reflection RGB
  static const unsigned short int MATERIAL_SPECULAR = 0xA030;

  // Identification of material shininess
  static const unsigned short int MATERIAL_SHININESS = 0xA040;

  // Identification of material transparency
  static const unsigned short int MATERIAL_TRANSPARENT = 0xA050;

  // Identification of material texture
  static const unsigned short int MATERIAL_MATERIAL = 0xA200;

  // Identification of texture filename
  static const unsigned short int MATERIAL_MAPFILE = 0xA300;

  static std::string getClassName() {
    return "C3DSFileIdentifications";
  }
};

#endif
